import base from './base.js'
import user from './user_login.js'

function req(obj) {
	if (obj.isLoding) {
		uni.showLoading({
			title: '加载中'
		});
	}
	return new Promise((resolve, reject) => {
		let UserInfo = uni.getStorageSync('user_info') //用户信息
		let token = ''
		// if (UserInfo) {
		// 	let expires = UserInfo.expires //缓存中存在的过期时间
		// 	let currentExpires = Math.round(new Date()) //当前时间戳
		// 	if (expires) { //判断缓存中的过期时间是否存在
		// 		if (expires < currentExpires) { //判断缓存中的过期时间是否小于当前时间
		// 			//token已过期
		// 			uni.removeStorageSync('user_info'); //清除stoage中的用户信息
		// 			token = ''

		// 		} else {
		// 			//token还没过期
		// 			token = UserInfo.token
		// 		}
		// 	} else { //缓存中的过期时间不存在
		// 		token = '' //清空token
		// 	}
		// }
		if (UserInfo) {
			token = UserInfo?.data?.token
		}
		const HOST = obj.base
		var method = obj.method || "GET";
		var url = HOST + obj.url || "";
		var data = obj.data || {};
		var header = obj.header || {
			'Content-Type': obj.contentType || 'application/json',
			'token': token === '' ? '' : token,
			'openid': UserInfo?.data?.openid,
			'timestamp': Math.round(new Date())
		};
		var success = obj.success; // 成功回调函数
		var fail = obj.fail; //表示失败后，要执行的回调函数
		function get_fn(data) {
			var arr = Object.keys(data);
			var str = "?";
			for (var i in data) {
				str += i;
				str += "=";
				str += data[i];
				str += "&";
			}
			data = str.substr(0, str.length - 1)
		}
		console.log(header,data,url)
		uni.request({
			url: url,
			data: data,
			method: method == 'get' || method == 'GET' ? get_fn(data) : method,
			header: header,
			success: ((res) => {
				if (obj.isLoding) {
					uni.hideLoading();
				}
				if (res.data.code === 1000) { //请求成功状态码
					resolve(res) //返回参数
				} else if (res.data.code === -5006 || res.data.code == -5005) { //请求成功状态码
					if (!uni.getStorageSync('isLoginPage')) {
						uni.setStorage({
							key: 'isLoginPage',
							data: true,
						})
						uni.showToast({
							title: '登陆过期或未登录',
							icon: 'none'
						})
						uni.removeStorage({
							key: 'user_info',
							success: function(res) {
								setTimeout(() => {
									uni.navigateTo({
										url: '/mine/login/login'
									})
								}, 2000)
							}
						});
					}
				}else if(res.data.code == -5046){
					uni.showToast({
						title: '门店id未绑定，前往首页绑定',
						icon: 'none',
						success() {
							uni.switchTab({
								url: '/pages/tabBar/home/home'
							})
						}
					})
				} else {
					uni.showToast({
						icon: 'none',
						title: res.data.msg,
						duration: 2000
					});
				}
			}),
			fail: ((err) => {
				if (obj.isLoding) {
					uni.hideLoading();
				} else {
					uni.showToast({
						icon: 'none',
						title: '网络请求异常' + err,
						duration: 2000
					});
				}
				reject(err)
			})
		})
	})
}
export default req
